GtkCssProvider: Also parse GdkColor values
authorCarlos Garnacho <carlosg@gnome.org>
Sat, 13 Nov 2010 00:24:07 +0000 (01:24 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:39:04 +0000 (15:39 +0100)
This is necessary for widget style properties to work.

gtk/gtkcssprovider.c

index 20803a2774758a9afc548fda36668c1807514dc3..d41df05de8353810c26d8384ad5e8095f9932ab4 100644 (file)
@@ -2313,12 +2313,18 @@ css_provider_parse_value (GtkCssProvider *css_provider,
 
   type = G_VALUE_TYPE (value);
 
-  if (type == GDK_TYPE_RGBA)
+  if (type == GDK_TYPE_RGBA ||
+      type == GDK_TYPE_COLOR)
     {
       GdkRGBA color;
+      GdkColor rgb;
 
-      if (gdk_rgba_parse (&color, value_str) == TRUE)
+      if (type == GDK_TYPE_RGBA &&
+          gdk_rgba_parse (&color, value_str))
         g_value_set_boxed (value, &color);
+      else if (type == GDK_TYPE_COLOR &&
+               gdk_color_parse (value_str, &rgb))
+        g_value_set_boxed (value, &rgb);
       else
         {
           GtkSymbolicColor *symbolic_color;